Automatic dispatch system for tow service providers

ABSTRACT

A work assignment request message, generated by a user device based on input provided by a tow service provider via the user device, is received at an enterprise server device. An initial pool of tow request stocks for potential fulfillment by the tow service provider is selected from a set of pending tow request stocks. A refined pool of tow request stocks is generated to exclude, from the initial pool, tow request stocks for which the tow service provider does not meet at least one fulfillment requirement. An optimized pool of tow request stocks is generated to include one or more tow request stocks selected, according to one or more optimization criteria, from the refined pool of tow request stocks. Information assigning the tow request stocks in the optimized pool of tow request stocks is transmitted from the enterprise server device to the user device.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.17/062,823, filed Oct. 5, 2020, now U.S. Pat. No. 11,132,904, which is acontinuation of U.S. patent application Ser. No. 16/876,440, filed May18, 2020, now U.S. Pat. No. 10,796,583, each of which is incorporatedherein by reference in its entirety.

FIELD OF THE DISCLOSURE

The present disclosure relates generally to automatic work assignmentsystems, more particularly, to automatic dispatch of work assignments totow service providers.

BACKGROUND

Vehicle hauling equipment, such as tow trucks, are often utilized totransport damaged or totaled motor vehicles to auction yards, forexample. An owner of a damaged or totaled vehicle may make an insuranceclaim to an insurance provider with which the owner has insured thevehicle. Upon processing the insurance claim and declaring the vehicleas a non-repair or a total loss damaged vehicle, the insurance providermay arrange for the vehicle to be picked up from its current locationand to be transported to a tow yard or another suitable location. Insome cases, the insurance company may employ or partner with a thirdparty provider for pickup and sales of the damaged vehicles. When thevehicle is picked up, the owner of the vehicle may receive acompensation payment from the insurance provider. The damaged or totaledvehicle can then be sold to an interested party in an auction or anothersuitable type of sale, for example.

Tow service providers, such as tow truck drivers, typically obtain workassignments from insurance providers, or third party providers, byvisiting a facility of the insurance or the third party provider. Anoperator at the facility manually selects tow assignments that may besuitable for fulfillment by the tow truck driver, prepares paperwork toassign the selected assignments to the tow truck driver, and providesthe paperwork to the tow truck driver. The tow truck driver can thencomplete the assignments by picking up the assigned vehicles fromvehicle pickup locations and dropping the vehicles off at vehicle dropoff destinations. Such manual work assignment procedures are ofteninefficient and time consuming, and often result in significant delaysin vehicle pickups, particularly in catastrophe situations in which manyvehicles may be damaged in a particular geographical area in a shortspan of time, for example due to a fire, a flood, a tornado, ahurricane, etc. in the particular geographical area. Such delays canresult in prolonged blockages of roads by the damaged vehicles, forexample, and may cause overpayment to storage yards and delays ininsurance payments to the owners of the damaged vehicles.

SUMMARY

The following introduces a selection of concepts in a simplified form inorder to provide a foundational understanding of some aspects of thepresent disclosure. The following is not an extensive overview of thedisclosure, and is not intended to identify key or critical elements ofthe disclosure or to delineate the scope of the disclosure. Thefollowing merely summarizes some of the concepts of the disclosure as aprelude to the more detailed description provided thereafter.

In an embodiment, a method for dispatching work assignments to towservice providers includes receiving, at a processor of an enterpriseserver device, a work assignment request message from a user device, thework assignment request message having been generated by the user devicebased on input provided by a tow service provider via the user device.The method also includes selecting, with the processor from a set ofpending tow request stocks, an initial pool of tow request stocks forpotential fulfillment by the tow service provider. The methodadditionally includes generating, with the processor based on theinitial pool of tow request stocks, a refined pool of tow requeststocks, the refined pool of tow request stocks being generated toexclude, from the initial pool of tow request stocks, tow request stocksfor which the tow service provider does not meet at least onefulfillment requirement, and generating, with the processor based on therefined pool of tow request stocks, an optimized pool of tow requeststocks to include one or more tow request stocks selected, according toone or more optimization criteria, from the refined pool of tow requeststocks. The method further includes generating, with the processor, oneor more work assignment response messages to include informationassigning tow request stocks in the optimized pool to the tow serviceprovider, and causing, with the processor, the one or more workassignment response messages to be transmitted from the enterpriseserver device to the user device to provide the information assigningthe tow request stocks in the optimized pool of tow request stocks tothe user device.

In another embodiment, a tangible, non-transitory computer readablemedium, or media, storing machine readable instructions that, whenexecuted by one or more processors, cause the one or more processors to:receive a work assignment request message from a user device, the workassignment request message having been generated by the user devicebased on input provided by a tow service provider via the user device;select, from a set of pending tow request stocks, an initial pool of towrequest stocks for potential fulfillment by the tow service provider;generate, based on the initial pool of tow request stocks, a refinedpool of tow request stocks, the refined pool of tow request stocks beinggenerated to exclude, from the initial pool of tow request stocks, towrequest stocks for which the tow service provider does not meet at leastone fulfillment requirement; generate, based on the refined pool of towrequest stocks, an optimized pool of tow request stocks to include oneor more tow request stocks selected, according to one or moreoptimization criteria, from the refined pool of tow request stocks;generate one or more work assignment response messages to includeinformation assigning tow request stocks in the optimized pool to thetow service provider; and cause the one or more work assignment responsemessages to be transmitted from the enterprise server device to the userdevice to provide the information assigning the tow request stocks inthe optimized pool of tow request stocks to the user device.

In still another embodiment, a system for automatic dispatch of workassignments to tow service providers comprises an auto dispatchapplication implemented on one or more processors of a user device. Theauto dispatch application configured to: provide a user interface forentering a work assignment request by a user of the user device, theuser being a tow service provider; in response to input provided via theuser interface by the user of the user device, generate a workassignment request message requesting work assignment for fulfillment bythe tow service provider, and cause the user device to transmit the workassignment request message, via a network, to an enterprise serverdevice. The system further comprises an auto dispatch system implementedon one or more processors of the enterprise server device. The autodispatch system configured to: receive the work assignment requestmessage transmitted by the user device; select, from a set of pendingtow request stocks, an initial pool of tow request stocks for potentialfulfillment by the tow service provider; generate, based on the initialpool of tow request stocks, a refined pool of tow request stocks, therefined pool of tow request stocks being generated to exclude, from theinitial pool of tow request stocks, tow request stocks for which the towservice provider does not meet at least one fulfillment requirement;generate, based on the refined pool of tow request stocks, an optimizedpool of tow request stocks to include one or more tow request stocksselected, according to one or more optimization criteria, from therefined pool of tow request stocks; generate one or more work assignmentresponse messages to include information assigning tow request stocks inthe optimized pool to the tow service provider; and cause the one ormore work assignment response messages to be transmitted from theenterprise server device to the user device to provide the informationassigning the tow request stocks in the optimized pool of tow requeststocks to the user device. Further scope of applicability of theapparatuses and methods of the present disclosure will become apparentfrom the more detailed description given below. It should be understoodthat the following detailed description and specific examples, whileindicating embodiments of the apparatus and methods, are given by way ofillustration only, since various changes and modifications within thespirit and scope of the concepts disclosed herein will become apparentto those skilled in the art from the following detailed description.

BRIEF DESCRIPTION OF THE DRAWINGS

For a more complete understanding of the invention, needs satisfiedthereby, and the objects, features, and advantages thereof, referencenow is made to the following description taken in connection with theaccompanying drawings.

FIG. 1 is a block diagram of a system in which automatic dispatchtechniques described herein may be utilized, according to an embodiment;

FIG. 2 is a block diagram of an auto dispatch system used with thesystem of FIG. 1, according to an embodiment;

FIG. 3 is a diagram illustrating a dispatch process implemented by anauto dispatch system used with the system of FIG. 1, according to anembodiment;

FIG. 4 is a diagram illustrating a process implement by an auto dispatchsystem used with the system of FIG. 1 to determine whether a catastropheor a regular work assignment should be utilized to service a workassignment request, according to an according to an embodiment;

FIGS. 5A-B are diagrams illustrating a process implemented by an autodispatch system used with the system of FIG. 1 to refine an initial poolof tow request stocks, according to an embodiment;

FIG. 6 is a diagram illustrating a process implemented by an autodispatch system used with the system of FIG. 1 to optimize a refinedpool of tow request stocks, according to an embodiment; and

FIG. 7 is a flow chart of a method for dispatching work assignments totow service providers, according to an embodiment.

Embodiments of the present disclosure and their advantages are bestunderstood by referring to the detailed description that follows. Itshould be appreciated that like reference numbers are used to identifylike elements illustrated in one or more of the figures, whereinshowings therein are for purposes of illustrating embodiments of thepresent disclosure and not for purposes of limiting the same.

DETAILED DESCRIPTION

Various examples and embodiments of the present disclosure will now bedescribed. The following description provides specific details for athorough understanding and enabling description of these examples. Oneof ordinary skill in the relevant art will understand, however, that oneor more embodiments described herein may be practiced without many ofthese details. Likewise, one skilled in the relevant art will alsounderstand that one or more embodiments of the present disclosure caninclude other features and/or functions not described in detail herein.Additionally, some well-known structures or functions may not be shownor described in detail below, so as to avoid unnecessarily obscuring therelevant description.

Embodiments described herein generally relate to an automatic dispatchsystem that automatically services work assignment requests that theautomatic dispatch system may receive from tow service providers, suchas tow truck drivers, for example. The automatic dispatch system may beimplemented by a server of an automotive market place enterprise, suchas a car auction enterprise, that may partner with insurance providersand may facilitate pickup of damaged vehicles that, for example, may bedeclared as non-repair vehicles by the insurance providers. Theautomatic dispatch system may receive work assignment requests providedby tow service providers via user devices, such as cellular phones, ofthe tow service providers. In response to receiving a work assignmentrequest from a user device of a tow service provider, the automaticdispatch system may select, from an inventory of pending tow requeststocks corresponding to tow requests provided by insurance providers, aninitial pool of tow request stocks that may potentially be fulfilled bythe tow service provider. Based on the initial pool of tow requeststocks, the automatic dispatch system may generate a refined pool of towrequest stocks to exclude, from the initial pool of tow request stocks,tow request stocks for which the tow service provider does not meet atleast one fulfillment requirement. For example, the automatic dispatchapplication may generate the refined pool of tow request stocks excludeone or more of i) tow request stocks with pickup locations outside adistance boundary from a current location of the requesting tow serviceprovider, ii) tow request stocks with pickups that require a licensethat is not held by the requesting tow service provider, iii) towrequest stocks associated with specific insurance providers, for exampleif the tow service provider is not set up to work with the specificinsurance providers, iv) tow request stocks that require payment methodsnot accepted by the requesting tow service provider, v) tow requeststocks that require pickup capabilities (e.g., heavy duty vehicle pickupcapabilities, number of axles, vehicle weight, flat bed, winch) notoffered by the requesting tow service provider, etc.

The automatic dispatch system may further generate an optimized pool oftow request stocks to include one or more tow request stocks selected,according to one or more optimization criteria, from the refined pool oftow request stocks. The automatic dispatch application may select theone or more tow request stocks to be included in the optimized pool oftow request stocks, based, for example, on one or more of i) a currentload of a tow truck of the requesting service provider, ii) destinationsof vehicles currently on the tow truck of the requesting tow serviceprovider, iii) current capacity of tow yards (e.g., auction yard) thatmay be potential destinations of the vehicles, iv) due times for pickupsof the vehicles, etc.

The automatic dispatch system may generate a work assignment responsemessage to include the optimized pool of tow request stocks that maypotentially be fulfilled by the tow service provider, and may transmitthe work assignment response message to the user device of the towservice provider to provide the optimized pool of tow request stocks forpotential fulfillment by the tow service provider. The automaticdispatch system may allow the tow service provider to accept or rejectrespective ones of the tow request stocks assigned to the tow serviceprovider. For example, the tow service provider may utilize the autodispatch application running on a user device, such as a cellular phoneof the tow service provider, to accept or reject the respective ones ofthe tow request stocks assigned to the tow service provider. Theaccepted work assignments may then be fulfilled by the tow serviceprovider.

These and other techniques described herein allow efficient assignmentof work assignments to tow service providers and may expeditefulfillment of the work assignments by the tow service providers. Suchautomatic work assignment may, for example, reduce delays in pickups ofthe damaged vehicles, allowing for efficient and quick clearing ofspaces (e.g., roadways, parking spaces, etc.) that may be blocked by thedamaged vehicles, and may also expedite processing of insurance claimsand provision of payments by insurance providers to the owners of thedamaged vehicles. Such automatic work assignment may be of particularimportance in catastrophe situations in which many vehicles may bedamaged in a short span of time, for example due to fires, floods,tornadoes, hurricanes, etc. Such automatic work assignment may also beadvantageous in the absence of catastrophic events.

FIG. 1 is a block diagram of a system 100 in which automatic dispatchtechniques described herein may be utilized, according to an embodiment.The system 100 may include one or more enterprise servers 102 and one ormore user devices 104, which may be communicatively coupled via acommunication network 106. The communication network 106 may be a widearea network (WAN) such as the Internet, a local area network (LAN), orany other suitable type of communication network. In some embodiments,communication network 106 may be a single communication network or maybe made up of multiple different communication networks. The system 100may also include one or more databases 110, including an enterpriseinventory stock database 110 a and an account profile database 110 b(described below). The one or more databases 110 may be communicativelycoupled to the enterprise server 102 via the communication network 106,as illustrated in FIG. 1, or may be coupled to the enterprise server 102in other suitable manners. For example, the one or more databases 110may be directly connected to the enterprise server 102, or may beincluded as part of the enterprise server 102, in some embodiments.Although the system 100 is illustrated as including two databases 110,the system 100 may include more than two databases 110, or may include asingle database 110, in some embodiments. For example, the enterpriseinventory stock database 110 a and the account profile database 110 bmay be parts of a single database 110, in an embodiment.

The enterprise servers 102 may be utilized by an automotive market placeenterprise, such as a car auction enterprise, and may implement one ormore applications that facilitate operation of the automotive marketplace enterprise. In an embodiment, respective ones of the enterpriseservers 102 may be utilized by respective branch locations of theautomotive market place enterprise, and each of the enterprise servers102 may facilitate operations of the respective ones of the branchlocations the automotive market place enterprise. In other embodiments,an enterprise server 102 may be utilized by multiple branch locations ofthe automotive market place enterprise, and may facilitate operationacross multiple branch locations the automotive market place enterprise.

An enterprise server 102 may include a processor 108 and acomputer-readable memory 110 that stores an automatic dispatch system112 (sometimes referred to herein as “auto dispatch system” 112) in theform of computer-readable instructions, for example, that may beexecutable by the processor 108. Computer readable memory 110 mayinclude volatile memory to store computer instructions and data on whichthe computer instructions operate at runtime (e.g., Random Access Memoryor RAM) and, in an embodiment, persistent memory such as a hard disk,for example. The automatic dispatch system 112 may facilitate automaticdispatch of work assignments that may be requested by tow serviceproviders via user devices 104 and communication network 106.

The user devices 104 may include, for example, personal computers,laptop computers, notebook computers, tablet computers, cellular phones,smart phones, and other suitable devices that may be configured forcommunication over a communication network. A user device 104 mayinclude a processor 118 and a computer readable memory 120 that storescomputer readable instructions executable by the processor 110. Thecomputer readable memory 120 may store an automatic dispatch application122 (sometimes referred to herein as “auto dispatch application” 122).The computer readable memory 120 may include volatile memory to storecomputer instructions, such as Random Access Memory (RAM), and may alsoinclude persistent memory such as a hard disk, for example. In someembodiments, the user device 104 includes multiple processors 118.Further, in some embodiments, the auto dispatch application 122 may beimplemented using hardware components, firmware components, softwarecomponents, or any combination thereof.

The auto dispatch application 122 of the user device 104 may be utilizedby a tow service provider, such as a tow truck driver, to electronicallyrequest work assignments to be provided for fulfillment by the towservice provider. The tow service provider may be tow company personnel,such as a tow truck driver employed by the tow company, or may be anindependent tow truck driver, for example. For ease of explanation, theuser of the user device 104 is sometimes referred to herein as a towtruck driver, and work assignment requests provided via the autodispatch application 122 of the user device 104 are generally describedherein as requesting assignment of work to be fulfilled using a towtruck of the tow truck driver. In other embodiments, however, workassignment requests may be provided via the auto dispatch application122 of the user device 104 by a person other than a tow truck driverand/or may request assignment of tow work to be fulfilled using multipletow trucks. For example, work assignment requests may be provided viathe auto dispatch application 122 of the user device 104 by personnel ofa tow company and/or may request assignment of tow work to be fulfilledusing multiple tow trucks of the tow company.

The auto dispatch application 122 may provide a user interface that mayallow the tow truck driver to request work to be assigned forfulfillment by a tow track of the tow truck driver. The tow serviceprovider may enter, into the user interface of the auto dispatchapplication 122, request information that may facilitate automaticdispatch of the requested work assignments to the tow truck driver. Forexample, the tow truck driver may enter, via the user interface of theauto dispatch application 122, information indicating a current load ofthe tow truck of the tow truck driver, a number pickups being requestedfor fulfillment by the tow truck driver, desired pickup locations orareas, desired drop off location or areas, etc. The auto dispatchapplication 122 may generate a work assignment request message based onthe information entered via the user interface by the tow truck driver,and may cause the work assignment request message to be transmitted tothe enterprise server 102. The work assignment request message mayinclude an identification of the tow truck driver and/or of the towtruck for which work assignment is being requested by the tow truckdriver. The work assignment request message may additionally include theinformation entered via the user interface by the tow truck driver.

The enterprise server 102 may receive work assignment request messagesfrom the user devices 104, and may provide the work assignment requestmessages to the auto dispatch system 112. The auto dispatch system 112may process the work assignment request messages, and may automaticallyassign, based at least in part on information included in the workassignment request messages, tow request stocks for fulfillment by thetow service provider (e.g., by the tow truck of the tow serviceprovider). To service a work assignment request received from a userdevice 104 of a tow truck driver, the auto dispatch system 112 mayselect an initial pool of tow request stocks from a database of pendingtow request stocks that may be maintained in the enterprise inventorystock database 110 a, for example. The auto dispatch system 112 mayperform one or more refinements and/or optimizations of the initial poolof tow request stocks, and may generate a refined and/or optimized poolof tow request stocks. The auto dispatch system 112 may generate a workassignment response message to include the refined and/or optimized poolof tow request stocks, and may cause the work assignment responsemessage to be transmitted from the enterprise server 112 to the userdevice 104 to provide the refined and/or optimized pool of tow requeststocks for potential fulfillment by the tow truck driver.

The enterprise server 102 may maintain, for example in the enterpriseinventory stock database 110 a, a database of tow request stocks. Thedatabase of tow request stocks in the enterprise inventory stockdatabase 110 a may include a set of tow request stocks corresponding totow requests provided by one or more insurance providers requestingpickup of damaged vehicles, such as for example vehicle that may havebeen declared as “non-repair” or totaled by the insurance providers. Theset of tow request stocks may, in turn, include respective subsets oftow request stocks corresponding to tow requests provided by differentones of multiple insurance providers. For example, the enterpriseinventory stock database 110 a may include a first subset of tow requeststocks corresponding to tow requests provided by a first insuranceprovider (e.g., Geico), a second subset of tow request stockscorresponding to tow requests provided by a second insurance provider(e.g., State Farm), a third set of tow request stocks corresponding totow requests provided by a third insurance provider (e.g., Allstate),etc. A tow request stock in the enterprise inventory stock database 110a may include tow request information, such as the particular insuranceprovider requesting the pickup, a geographical location of the pickup,license requirements for the pickup, a type of vehicle that is to bepicked up, one or more specific payment types that may be provided forthe pickup, etc. In some embodiments, at least some of the tow requeststocks correspond to tow requests provided by a vehicle provider otherthan an insurance company, for example, a charity group, private owner,or any other suitable entity that may want to auction a vehicle. Forease of description, the examples described herein refer to theinsurance company as the vehicle provider.

The enterprise server 102 may also maintain, for example in the accountsdatabase 110 b, a database of contracts between the automotive marketplace enterprise and the insurance providers, including, for example,service level agreements (SLAs) between the automotive market placeenterprise and the insurance providers. A service level agreementbetween the automotive market place enterprise and an insurance providermay include various agreed upon requirements, such as a minimum dailynumber of tow requests to be handled for the insurance provider by theautomotive market place enterprise, a time of fulfillment of towrequests, such as same day fulfillment of tow requests with pickuplocations within a certain distance (e.g., 30 miles) from a branchlocation of the automotive market place enterprise, same day fulfillmentwith pickup locations within a certain distance (e.g., 100 miles) if thetow requests are received by a certain time (e.g., 9 AM), a maximum time(e.g., a maximum number of days) to fulfill a tow request, etc., invarious embodiments.

The enterprise server 102 may additionally maintain, for example in theaccounts database 110 b, a database of profiles of tow service providersthat may be registered with the automotive market place enterprise. Atow service provider profile may include an identifier associated withthe tow service provider, and may include additional information aboutthe tow service provider, such as geographical area serviced by the towservice provider, whether particular licenses (e.g., residential pickuplicense, business pickup license, towing requirement or regulation froma local zoning body) are held by the tow service provider, a type of towtruck of the tow service provider, maximum capacity of the tow truck ofthe tow service provider, pickup capabilities of the tow serviceprovider (e.g., whether the tow service provider can handle certaintypes of vehicles, such as heavy duty vehicles, whether they provide adesired number of axles, vehicle weight, flat bed, winch), payment typesaccepted by the tow service provider, etc.

The auto dispatch system 112 may generally service work assignmentrequest messages received from the user devices 104 of tow serviceproviders by efficiently and optimally assigning tow request stockspending in the enterprise inventory database 110 a for fulfillment bythe tow service providers. In an embodiment, the auto dispatch system112 may service a work assignment request message received from a userdevice 104 of a tow service provider based on i) information included ina tow provider profile that may be retrieved from the account profiledatabase 110 b using an identifier of the tow service provider that maybe included in the work assignment request message and ii) tow requestinformation that included in tow request stocks in the enterpriseinventory database 110 a.

To service a work assignment request message received from a user device104 of a tow service provider, the auto dispatch system 112 may select,from a set of tow request stocks pending in the enterprise inventorystock database 110 a, an initial pool of tow request stocks forpotential fulfillment by the tow service provider. The auto dispatchsystem 112 may select the initial pool of tow request stocks based onthe geographical service area of the tow service provider, for exampleas indicated in a tow provider profile of the tow service provider. Forexample, the auto dispatch system 112 may select the initial pool of towrequest stocks to include tow request stocks with pickup locationswithin the geographical service area of the tow service provider. Inother embodiments, the auto dispatch system 112 may select the initialpool of tow request stocks according to a suitable selection criteriadifferent from the geographical service area of the tow serviceprovider. The auto dispatch system 112 may then apply one or morerefinement and/or optimization criteria to the initial pool of towrequest stocks to refine and/or optimize the initial pool of tow requeststocks.

Refining the initial pool of tow request stocks may involve excluding,from the initial pool of tow request stocks, one or more tow requeststocks for which the tow service provider does not meet at least onefulfillment requirement. As an example, if the tow provider profile ofthe tow service provider indicates that the tow service provider doesnot hold a particular towing license (e.g., residential pickup license,business pickup license, towing requirement or regulation from a localzoning body), the auto dispatch system 112 may exclude, from the initialpool of tow request stocks, tow request stocks that require theparticular towing license. As just another example, if the tow providerprofile of the tow service provider indicates that the tow serviceprovider does not accept a particular type of payment (e.g., credit cardpayments), the auto dispatch system 112 may exclude, from the initialpool of tow request stocks, tow request stocks that require theparticular type of payment. As yet another example, if the tow providerprofile of the tow service provider indicates that the tow serviceprovider does not handle a particular type of vehicle or does not havecertain pickup features (e.g., whether the tow service provider canhandle certain types of vehicles, such as heavy duty vehicles, whetherthey provide a desired number of axles, vehicle weight, flat bed,winch), the auto dispatch system 112 may remove, from the initial poolof tow request stocks, tow request stocks that request pickup of theparticular type of vehicle. In other embodiments, other suitablerefinement criteria may be additionally or alternatively utilized. Anexample process for refining a pool of tow request stocks, according toan embodiment, is described in more detail below in connection withFIGS. 5A-B.

The auto dispatch system 112 may further optimize the refined pool oftow request stocks, by applying one or more optimization criteria to therefined pool of tow request stocks to select an optimized pool of towrequest stocks. The auto dispatch system 112 may select the optimizedpool of tow request stocks based on one or more of i) a current load ofthe tow truck for which work assignment is requested, ii) a maximum loadof the tow truck for which work assignment is requested, iii) a currentlocation of the tow truck for which work assignment is requested, iv)destination locations of vehicles in the current load of the tow truckfor which work assignment is requested, v) destination locations ofvehicles in the tow request stocks, iv) pickup locations in the towrequest stocks relative to the current location of the tow truck of thetow service provider, vii) pickup locations in the tow request stocksrelative to each other, vi) priorities of and service level agreementswith the insurance providers that provided the tow requests in the towrequest stocks, etc. As an example, the auto dispatch system 112 mayselect multiple tow request stocks with a same destination location(e.g., a same yard), and may generate the optimized pool of tow requeststocks to include the multiple tow request stocks with the samedestination location. As another example, the auto dispatch system 112may generate the optimized pool of stocks to include multiple towrequest stocks with close pickup locations relative to each other and/orclose pickup locations relative the current location of the tow truck.As yet another example, the optimized pool of tow request stocks toinclude tow request stocks having earlier pickup due times and/or towrequest stocks that need to be services to progress to achieving SLArequirements for a particular insurance provider. In other embodiments,other suitable optimization criteria may be utilized. An example processfor optimizing a pool of tow request stocks, according to an embodiment,is described in more detail below in connection with FIG. 6.

In some embodiments, the auto dispatch system 112 may refine and/oroptimize the initial pool of tow request stocks using differentrefinement and/or optimization criteria based on whether the tow serviceprovider (e.g., the tow truck driver) is working to fulfill catastropherelief assignments or regular day-to-day assignments. For example, theauto dispatch system 112 may utilize relaxed and/or differentoptimization criteria when assigning work to tow truck drivers workingto fulfill catastrophe relief assignments relative to optimizationcriteria used when assigning work to tow truck drivers working tofulfill regular day-to-day assignments. As an example, optimizationsbased on insurance provider priority and/or SLA requirements whenassigning work to tow truck drivers working to fulfill catastropherelief assignments. On the other hand, optimizations based on pickuplocations and/or drop-off locations may be performed to facilitateefficient and quick pickup of large number of vehicles that may bedamaged in a short span of time in a catastrophe situation.

In some embodiments, the auto dispatch system 112 accumulates multiplework assignment requests received from respective user devices 104(e.g., one request per user device), for example by queueing themultiple work assignment requests received from user devices 104, tomore efficiently select and service ones of the multiple work assignmentrequests received from user devices 104. For example, the auto dispatchsystem 112 may perform optimizations across multiple work assignmentrequests received from user devices 104 to more optimally distributeassignment of pending tow request stocks across multiple requesting towservice providers. Such optimal distributions of assignments of pendingtow request stocks across multiple requesting tow service providers maybe particularly important in catastrophe work assignment scenarios, butmay also be utilized to more optimally distribute assignment of pendingtow request stocks in regular day-to-day work assignment scenarios. Insome embodiments, the auto dispatch system 112 allows for only a singlepending request from a user device 104, for example, by ignoring ordiscarding subsequent requests received from a same user device 104, orreplacing an earlier request with a most recent request.

Referring still to FIG. 1, upon generating the refined and/or optimizedpool of tow request stocks, the auto dispatch system 112 may generateone or more work assignment response messages, and may cause the one ormore work assignment response messages to be transmitted from theenterprise server 112 to the user device 104 to provide informationassigning the refined and/or optimized pool of tow request stocks forpotential fulfillment by the user (e.g., the tow truck driver) of theuser device 104. The user device 104 may receive the work responsemessage from the enterprise server 102, and may provide the workresponse message to the auto dispatch application 122. The userinterface of the auto dispatch application 122 may display the towrequest stocks assigned to the tow truck driver. The user interface ofthe auto dispatch application 122 may allow the user to accept or rejectrespective ones of the tow request stocks assigned to the user. The usermay reject particular tow request stocks when the tow request stocksassigned to the user are initially presented to the user, or may rejectinitially accepted tow request stocks, for example because the usercould not fulfill, or could not timely fulfill, the initially acceptedtow request stocks. As just an example, the user may reject an initiallyaccepted tow request stock because the vehicle indicated in the towrequest stocks was totaled (e.g., broken apart) to an extent that deemedit difficult or impossible to be loaded onto the tow truck of the user.The auto dispatch application 122 may generate one or moreacceptance/rejection messages based on the input provided by the uservia the user interface of the auto dispatch application 122, and maycause the one or more acceptance/rejection messages to be transmitted tothe enterprise server 102 to indicate accepted/rejected tow requeststocks to the auto dispatch system 112 tor another component of theenterprise server 102, in an embodiment.

In an embodiment, the auto dispatch application 122 may additionallyallow the user to provide status of fulfillment of the accepted towrequest stocks assigned to the user. For example, upon completing pickupof a vehicle indicated in a tow request that was accepted by the user,the user may enter, via the user interface of the auto dispatchapplication 122, a status update indicating that the vehicle has beenpicked up. Similarly, upon completing drop-off of a vehicle indicated ina tow request accepted by the user, the user may enter, via the userinterface of the auto dispatch application 122, a status updateindicating that the vehicle has been transported to the desiredlocation. The auto dispatch application 122 may generate one or morestatus update messages based on the input provided by the user via theuser interface of the auto dispatch application 122, and may cause theone or more status update messages to be transmitted to the enterpriseserver 102 to indicate the status updates to the auto dispatch system112 or another component of the enterprise server 102, in an embodiment.

In some embodiments, the auto dispatch application 122 may allow theuser to request reimbursement of charges that may be incurred by theuser, for example during pick-up, transportation and/or drop-off of avehicle. As an example, in a situation in which the pick-up location ofthe vehicle is a storage yard, a payment may need to be provided uponpick-up of the vehicle from the storage yard. In this case, the user mayprovide the payment to the storage yard when picking up the vehicle fromthe storage yard. As another example, the user may provide a payment toa tree removal company for removal of a tree that may have fallen on thevehicle being picked-up, may provide a toll payment duringtransportation of the vehicle, etc. The user may submit a reimbursementrequest, requesting a refund of one or more charges incurred by theuser, via the auto dispatch application 122. Submitting the request mayinvolve entering, into the user interface of the auto dispatchapplication 122, various information about one or more payments forwhich reimbursement is being requested, such as specifying a location atwhich a payment was made, entering an amount (e.g., a dollar amount) forwhich the refund is being requested, providing a receipt (e.g., apicture of the receipt) obtained for the payment, etc. The auto dispatchapplication 122 may generate one or more reimbursement request messagesbased on the input provided by the user via the user interface of theauto dispatch application 122, and may cause the one or morereimbursement request messages to be transmitted to the enterpriseserver 102 to provide the reimbursement request to the auto dispatchsystem 112 or another component of the enterprise server 102, in anembodiment. The auto dispatch system 112 or another component of theenterprise server 102 may receive and process the one or morereimbursement request messages, and may automatically issue a refund tothe user, for example by crediting an account of the user, issuing acheck to be mailed to the user, etc., in an embodiment.

Additionally or alternatively, the auto dispatch application 122 mayallow the user to use electronic payment means to provide payments forcharges, such as storage yard charges, tree removal charges, tollcharges, etc., incurred during pick-up, transportation and/or drop-offof a vehicle. For example, in an embodiment, the auto dispatchapplication 122 may allow the user to request that electronic paymentmeans, such as a virtual credit card (e.g., a one-time use virtualcredit card) or other virtual payment means, to be issued for a chargeincurred during pick-up, transportation and/or drop-off of a vehicle.The user may submit an electronic payment means issuance request,requesting issuance of an electronic payment means, via the autodispatch application 122. Submitting the electronic payment meansissuance request may involve entering, into the user interface of theauto dispatch application 122, various information about the payment forwhich the electronic payment means is being requested, such asspecifying a location at which a payment is to be made, entering anamount (e.g., a dollar amount) for which the electronic payment is to beissued, providing an invoice (e.g., a picture of the invoice) obtainedfor the payment, etc. The auto dispatch application 122 may generate oneor more electronic payment means issuance request messages based on theinput provided by the user via the user interface of the auto dispatchapplication 122, and may cause the one or more electronic payment meansissuance request messages to be transmitted to the enterprise server 102to provide the electronic payment means issuance requests to the autodispatch system 112 or another component of the enterprise server 102,in an embodiment. The auto dispatch system 112 or the other component ofthe enterprise server 102 may receive and process the one or moreelectronic payment means issuance request messages, and may request forthe payment means to be issued by a financial institution such as a bankor a credit company with which the automotive market place enterprisemay have an account, in an embodiment. For example, the auto dispatchsystem 112 or the other component of the enterprise server 102 maygenerate an electronic payment issuance request message for issuance ofan electronic payment means, and may transmit the electronic paymentissuance request message to a server of the financial institution (notshown in FIG. 1), for example via an application programming interface(API) provided by the financial institution. The electronic paymentissuance request message may include various information that may beneeded by the financial server to issue the electronic payment means,such as an amount for which to issue the electronic payment means,account information (e.g., an account number) associated with an accountof the automotive market place enterprise against which the electronicpayment means is to be issued, etc. In some embodiments, the autodispatch application 122 of the user device 104 may generate andtransmit an electronic payment issuance request message directly to thefinancial institution, via an API provided by the financial institution.In an embodiment, the auto dispatch application 122 may be programmedwith or otherwise have access to account information, such as an accountnumber associated with an account of the automotive market placeenterprise against which the electronic payment means is to be issued,and the auto dispatch application 122 may include, in the electronicpayment issuance request message, the account information associatedwith the account of the automotive market place enterprise.

The server of the financial institution may receive the electronicpayment issuance request (e.g., from the enterprise server 102 or theuser device 104), and may generate electronic payment means information,such as a virtual credit card number, expiration date, etc., to servicethe request. The electronic payment means may be generated by the serverof the financial institution in connection with the account of theautomotive market place enterprise, so that the requested funds may bedrawn directly from and/or posted directly to the account of theautomotive market place enterprise. The server of the financialinstitution may generate and transmit a response message to theenterprise server 102 or to the user device 104, to provide theelectronic payment means information to the enterprise server 102 or theuser device 104, in an embodiment. In an embodiment in which thefinancial institution transmits the response message to the enterpriseserver 102, the enterprise server 102 (e.g., the auto dispatch system112) may, in turn, provide the electronic payment means information,such as the virtual credit card number, the expiration date, etc., tothe user via the auto dispatch application 122 to enable the user toprovide payment for the incurred charge using the electronic paymentmeans. Issuance of electronic payment means to the user via the autodispatch application 122 eliminates the need for subsequentreimbursements to be provided to the user, in at least some situations.Further, issuance of electronic payments to the user via the autodispatch application 122 allows for payments to be made directly by theautomotive market place enterprise which may be advantageous, forexample, in situations in which the payment recipient, such as a storageyard, only accepts payments made on behalf of the automotive marketplace enterprise directly from the automotive market place enterprise,or only accepts payment types that the user may not be able to otherwiseprovide, in some embodiments.

FIG. 2 is a block diagram of an auto dispatch system 200 thatcorresponds to the auto dispatch system 112 of FIG. 1, according to anembodiment. In the embodiment of FIG. 2, the auto dispatch system 112 afulfillment application 204 and a dispatch application 206. The autodispatch system 112 a fulfillment application 204 and a dispatchapplication 206 may provide, respectively, input and output interfacesfor the auto dispatch system 112, and may be application programminginterfaces (APIs) or other suitable types of interfaces. The autodispatch system 112 additionally includes a queue processor 210, arefinement engine 212, an optimization engine 214 and a queue database218. In some embodiments, the auto dispatch system 112 may omit one ormore of the queue processor 210, the refinement engine 212, theoptimization engine 214, and the queue database 218. For example, theauto dispatch system 112 may omit the queue processor 210 and the queuedatabase 218, in some embodiments. In an embodiment, work assignmentrequests received by the auto dispatch system 112 from user devices 104may be initially processed (e.g., validated) by the fulfillmentapplication 204, and may be queued in the queue database 218 by thefulfillment application 204. The work assignment requests may beretrieved from the queue database 218 by the queue processor 140, andmay be further processed by the queue processor 140.

To process a work assignment request, the queue processor 140 maygenerate an initial pool of tow request stocks for potential fulfilmentby the tow service provider (e.g., a tow truck driver) from which thework assignment request was received by the auto dispatch system 112.The initial pool of tow request stocks may then be refined by therefinement engine 212 and/or optimized by the optimization engine 214.The refined and/or optimized tow request pool may be provided to thedispatch application 204. The dispatch application 204 may performfinancial calculations, document generation, etc., to prepare dispatchof the refined and/or optimized tow request pool to the user device 104.The dispatch application 204 may generate one or more work assignmentresponse messages to include information assigning tow requests in thetow request pool refined by the refinement engine 212 and/or optimizedby the optimization engine 214 to the user (e.g., the tow truck driver)of the user device 104. The one or more work assignment responsemessages may also include information generated by the dispatchapplication 204, such as financial information, documentation, etc.,that may be needed for fulfillment of the tow request stocks assigned tothe user of the user device 104.

FIG. 3 is a diagram illustrating a dispatch process 300 that may beimplemented by the auto dispatch system 200 of FIG. 2, according to anembodiment. The auto dispatch system 200 may receive a work assignmentrequest message 302 from a user device 104. The work assignment requestmessage 302 may be generated by the auto dispatch application 122 of theuser device 104 in response to a user input provided, via a userinterface of the auto dispatch application 122, by a tow serviceprovider (e.g., a tow truck driver). The work assignment request message302 may include an identification of the tow service provider. The workassignment message 302 may also include request information, such as acurrent load of the tow truck, a number of vehicles being requested, adesired geographical area for pickup locations and/or drop offlocations, etc.

The work assignment request message 302 may be provided to thefulfillment application 202. The fulfillment application 202 may performa validation procedure 304. The validation procedure 304 may checkwhether a work assignment request previously received from the towservice provider identified in the work assignment message 302 iscurrently pending in the auto dispatch system 200, for example. If thevalidation procedure 304 determines that the work assignment request 302is not valid, for example because a previously received work assignmentrequest from the tow service provider identified in the work assignmentrequest message 302 is currently pending in the auto dispatch system200, then the fulfilment application 202 may generate and transmit anerror message 304 to the user device 104. The error message 304 mayinclude an indication that the work assignment message 302 is not validdue to a pending work assignment request of the tow service provider. Onthe other hand, if the validation procedure 304 determines that the workassignment request 302 is valid, the fulfillment application 204 mayplace the work assignment request 302 in a queue in the queue database218.

The queue processor 210 may periodically generate queue item requests310 to retrieve pending work assignment requests from the queue database228, and may receive pending work assignment requests 312 from the queuedatabase 228 providing pending work assignment requests to the queueprocessor 210. For example, the queue processor 210 may receive anoldest currently pending work assignment request from the queue database228, or may receive a work assignment request selected from the queuedatabase 228 according to another suitable criteria. The work assignmentrequest 312 may include a tow service provider identifier identifying atow service provider that provided the work assignment request, and mayinclude addition request information that was provided with the requestby the tow service provider. In response to receiving a work assignmentrequest 312, the queue processor 210 may obtain additional informationthat may be needed for servicing the request. For example, the queueprocessor 210 may retrieve, based on the tow service provider identifierincluded in the work assignment request 312, a profile of the towservice provider from the account database 110 b, where the profile ofthe tow service provider may include various information regarding thetow service provider, such as geographical area serviced by the towservice provider, whether particular licenses (e.g., residential pickuplicense, business pickup license, towing requirement or regulation froma local zoning body) are held by the tow service provider, a type of towtruck of the tow service provider, maximum capacity of the tow truck ofthe tow service provider, pickup capabilities of the tow serviceprovider (e.g., whether the tow service provider can handle certaintypes of vehicles, such as heavy duty vehicles, whether they provide adesired number of axles, vehicle weight, flat bed, winch), payment typesaccepted by the tow service provider, etc.

The queue processor 210 may generate an inventory query 314, and mayprovide the inventory query 314 to the inventory database 110 a toselect an initial pool of tow request stocks from a set of tow requeststocks in the inventory database 110 a. The inventory query 314 mayselect the initial pool of tow request stocks based, for example, on ageographical service area of the tow service provider, or may select theinitial pool of tow requests based on other suitable selection criteria.In response to the inventory query 314, the queue processor 210 mayreceive an initial pool of tow request stocks 316 selected from the setof tow request stocks in the inventory database 110 a.

With continued reference to FIG. 3, the queue processor 210 may generatean instruction 318, and may provide the instruction 318 to therefinement engine 212 to trigger the refinement engine 212 to generate arefined pool of tow request stocks based on the initial pool of towrequest stocks 316. The refinement engine 212 may apply one or morerefining criteria to the initial pool of tow request stocks 316 togenerate a refined pool of stocks 320. For example, the refinementengine 212 may refine the initial pool of tow request stocks 316 toexclude one or more of i) tow request stocks with pickup locationsoutside a distance boundary from a current location of the tow serviceprovider, ii) tow request stocks with pickups that require a licensethat is not held by the tow service provider, iii) tow request stocksassociated with specific insurance providers, for example if the towservice provider is not set up to work with the specific insuranceproviders, iv) tow request stocks that require payment methods nothandled by the tow service provider, v) tow request stocks that requirepickup capabilities (e.g., whether the tow service provider can handlecertain types of vehicles, such as heavy duty vehicles, whether theyprovide a desired number of axles, vehicle weight, flat bed, winch) notoffered by the tow service provider, etc., in various embodiments.

Upon receiving the refined pool of tow request stocks 320, the queueprocessor 210 may generate an instruction 322, and may provide theinstruction 322 to the optimization engine 214 to trigger theoptimization engine 214 to generate an optimized pool of tow requeststocks based on the refined pool of tow request stocks 320. Theoptimization engine 214 may apply one or more optimization criteria tothe refined pool of tow request stocks 320 to generate an optimized poolof tow request stocks 322. For example, the optimization engine 214 mayoptimize the refined pool of tow request stocks 320 based on a currentload of a tow truck of the requesting service provider, destinations ofvehicles currently on the tow truck of the requesting tow serviceprovider, current capacity of tow yards that may be destinations of thevehicles to be towed, stock priorities, requested pickup dates for thevehicle, etc., in various embodiments.

In an embodiment, different refinement and/or optimization criteria maybe utilized by the refinement engine 212 and/or the optimization engine214 depending on whether the tow service provider is working to fulfillcatastrophe relief assignments or regular day-to-day assignments. In anembodiment, the queue processor 210 determines whether the tow serviceprovider is working to fulfill catastrophe relief assignments or regularday-to-day assignments, and provides this information to the refinementengine 212 and/or the optimization engine 214 so that appropriaterefinement and/or optimization criteria may be utilized.

Referring still to FIG. 3, upon receiving the optimized pool of towrequest stocks 324, the queue processor 210 may check whether thereceived optimized pool of tow request stocks 324 is empty, indicatingthat no pending tow request stocks can currently be optimally assignedto the tow service provider. If the queue processor 210 determines thatthe optimized pool of tow request stocks 324 is empty, then the queueprocessor 210 may generate an unsuccessful queue entry signal 328, andmay provide the unsuccessful queue entry signal 328 to the queuedatabase 218, to mark the entry as unfulfilled in the queue database218. The work assignment request may remain queued in the queue database218, and the queue processor 210 may subsequently again attempt toservice the request, in an embodiment.

On the other hand, if the queue processor 210 determines that theoptimized pool of tow request stocks 324 is not empty, the queueprocessor 210 may generate an instruction 330, and may provide theinstruction 330 to the dispatch application 204 to trigger dispatch ofthe optimized pool of tow request stocks 324 to the user device 104. Thedispatch application 204 may prepare dispatch of the optimized pool oftow request stocks 324 to the user device 104. For example, the dispatchapplication 204 may perform financial calculations associated withfulfillment of tow request stocks in the optimized pool of tow requeststocks 324, generate documents that may be needed for fulfillment of towrequest stocks in the optimized pool of tow request stocks 324, etc. Thedispatch application 204 may generate one or more work assignmentresponse messages 332 that may include information assigning tow requeststocks in the optimized pool of tow request stocks to 324 to the towservice provider. For example, the one or more work assignment responsemessages 332 may include the optimized pool of tow request stocks 324,and may include additional information (e.g., financial information,documents, etc.) that may be needed for fulfillment of tow requeststocks in the optimized pool of tow request stocks 324. The dispatchapplication 204 may cause the one or more work assignment responsemessages 332 to be transmitted to the user device 104 to provide theinformation assigning tow request stocks in the optimized pool to thetow service provider.

FIG. 4 is a diagram illustrating a process 400 that may be implement bythe auto dispatch system 112 to determine whether a catastrophe or aregular work assignment should be utilized to service a work assignmentrequest, according to an embodiment. The work assignment request may bereceived at an enterprise server 102 employed by a particular branchlocation of an automotive market place enterprise and may request workassignment from the particular branch location of the location of theautomotive market place enterprise. In an embodiment, the queueprocessor 210 of the auto dispatch system 112 implements the process400. In another embodiment, another suitable component of the autodispatch system 112 implements the process 400.

At block 402, the queue processor 210 determines whether the tow serviceprovider is working to fulfill catastrophe relief assignments or regularday-to-day assignments. The queue processor 210 may make thisdetermination based on a work assignment indication in a tow serviceprovider profile that the queue processor 210 may retrieve from theaccount profile database 110 b. Additionally or alternatively, the queueprocessor 210 may make this determination based on information includedin the work assignment request message received from the user device 104of the tow service provider. In other embodiments, the queue processor210 makes this determination based on other suitable information.

If the queue processor 210 determines at block 402 that the tow serviceprovider is working to fulfill regular assignments, the process 400continues at block 404 at which the queue processor 210 determines thatregular assignment profile should be utilized. On the other hand, if thequeue processor 210 determines at block 402 that the tow serviceprovider is working to fulfill catastrophe relief assignments, theprocess 400 proceeds to block 406 at which the queue processor 210determines whether a catastrophe assignment profile exists for theparticular branch location of the automotive market place enterprise. Ifthe queue processor 210 determines at block 406 that a catastropheassignment profile exists for the particular branch location of theautomotive market place enterprise, then the process 400 proceeds toblock 408 at which the queue processor 210 determines that thecatastrophe assignment profile should be utilized. On the other hand, ifthe queue processor 210 determines at block 406 that a catastropheassignment profile does not exist for the particular branch location ofthe automotive market place enterprise, then the process 400 proceeds toblock 410 at which the queue processor 210 determines that the regularassignment profile should be utilized.

FIGS. 5A-B are diagrams illustrating a process 500 implemented by theauto dispatch system 112 to refine an initial pool of tow requeststocks, according to an embodiment. In an embodiment, the process 500 isimplemented to refine an initial pool of tow request stocks that may begenerated based on a work assignment request message received from auser device 104 of a tow service provider, and may include tow requeststocks selected for potential fulfilment by the tow service provider. Inan embodiment, the refinement engine 212 of the auto dispatch system 112implements the process 500. In another embodiment, another suitablecomponent of the auto dispatch system 112 implements the process 500.

Referring first to FIG. 5A, at block 502, the refinement engine 212determines whether one or more particular towing licenses are requiredfor the pickup in each tow request in the initial pool of tow requeststocks. For example, the refinement engine 212 checks whether one orboth of residential pickups and business pickups are required for thetow requests in the initial pool of tow request stocks. If therefinement engine 212 determines at block 502 that one or moreparticular towing licenses are required for the pickup in each towrequest in the initial pool of tow request stocks, the process 500proceeds to block 504 at which the refinement engine 212 determineswhether a residential towing license is required for the pickups in theinitial pool of tow request stocks. If the refinement engine 212determines at block 504 that a residential towing license is requiredfor at least one tow request in the initial pool of tow request stocks,then the refinement engine 212 checks at block 506 whether the towservice provider holds a residential towing license. If the refinementengine 212 determines at block 506 that the tow service provider holds aresidential towing license, then the at least one tow request stock thatrequires the residential towing license is included in a refined pool oftow request stock at block 508. Conversely, if the refinement engine 212determines at block 506 that the tow service provider does not hold aresidential towing license, then the at least one tow request stock thatrequires the residential towing license is excluded from the refinedpool of tow request stock at block 518.

The process 500 continues at block 512 at which the refinement engine212 determines whether a business towing license is required for thepickups in the initial pool of tow request stocks. If the refinementengine 212 determines at block 512 that a business towing license isrequired for at least one tow request in the initial pool of tow requeststocks, then the refinement engine 212 checks at block 514 whether thetow service provider holds a business towing license. If the refinementengine 212 determines at block 514 that the tow service provider holds abusiness towing license, then the at least one tow request stock thatrequires the business towing license is included in the refined pool oftow request stock at block 516. Conversely, if the refinement engine 212determines at block 514 that the tow service provider does not hold abusiness towing license, then the at least one tow request stock thatrequires the business towing license is excluded from the refined poolof tow request stock at block 518.

Although the disclosure, and steps 504 and 512 in particular, refer to aresidential pickup license and business pickup license, respectively,compliance with other licenses or regulatory requirements may be checkedin addition to, or instead of, those licenses, in other embodiments. Forexample, in some embodiments, the license requirement could be anyrelevant towing requirement or regulation from a local zoning body, suchas a county, township, city, or other government. In some scenarios, theregulations are specific to a zip code or other geographical area.

Referring now to FIG. 5B, the process 500 continues at block 522 atwhich the refinement engine 212 determines whether the towing serviceprovider provides towing services for only particular insuranceproviders. Based on the determination made at block 522 the process 500either proceeds to block 524 or skips the block 524. At block 524, therefinement engine 212 excludes, from the initial pool of tow requeststocks, tow request stocks specifying insurance providers other than theparticular insurance providers serviced by the tow service provideraccording to the determination made at block 522. At block 526, therefinement engine 212 determines whether the towing service provider hascapabilities for pickup of certain type of vehicles (e.g., whether thetow service provider can handle certain types of vehicles, such as heavyduty vehicles, whether they provide a desired number of axles, vehicleweight, flat bed, winch). Based on the determination made at block 526,the process 500 either proceeds to block 528 or skips the block 528. Atblock 528, the refinement engine 212 excludes, from the initial pool oftow request stocks, tow request stocks specifying the certain types ofvehicles for which the tow request provider does not have capabilitiesaccording to the determination made at block 526.

At block 530, the refinement engine 212 determines whether the towingservice provider does not access certain types of payments, such ascredit card payments. Based on the determination made at block 530, theprocess 500 either proceeds to block 532 or skips the block 532. Atblock 532, the refinement engine 212 excludes, from the initial pool oftow request stocks, tow request stocks specifying the certain notaccepted by the tow service provider according to the determination madeat block 530. At block 534, the refinement engine 212 determines whetherthe towing service provider has previously rejected tow request stocksin the initial pool of tow request stocks. Based on the determinationmade at block 534, the process 500 either proceeds to block 536 or skipsthe block 536. At block 536, the refinement engine 212 excludes, fromthe initial pool of tow request stocks, tow request stocks that havebeen previously rejected by the tow service provider according to thedetermination made at block 534. At block 538, the refinement enginegenerates a refined pool of tow request stocks to include the towrequest stocks that were not excluded by the process 500.

In an embodiment, steps 502, 504, and 512 are omitted and exclusion ofstocks for a license requirement is performed in a manner similar tothat shown for steps 522 and 524, steps 526 and 528, etc. In otherwords, the refinement engine 212 determines whether the towing serviceprovider has a particular license and then when the provider does nothave a particular license, the refinement engine 212 excludes thosestocks that require the license.

FIG. 6 is a diagram illustrating a process 600 implemented by the autodispatch system 112 to optimize a pool of tow request stocks, accordingto an embodiment. In an embodiment, the process 600 is implemented tooptimize the refined pool of tow request stocks generated by the process500 of FIGS. 5A-B. In other embodiments, the process 600 is implementedto optimize a refined pool of tow request stocks generated by a suitableprocess different from the process 500 of FIGS. 5A-B. In an embodiment,the optimization engine 214 of the auto dispatch system 112 implementsthe process 600. In another embodiment, another suitable component ofthe auto dispatch system 112 implements the process 600.

At block 602, the optimization engine 214 may determine a batch limitindicating a number of tow request stocks that may be assigned to thetow truck driver. For example, the optimization engine 214 may determinethe batch limit by subtracting a current load of the tow truck from amaximum load of the tow truck. At block 604, the optimization engine 214may determine whether the work assignment request corresponds to arefill batch scenario or a new batch scenario. The optimization engine214 may determine whether the work assignment request corresponds to arefill batch scenario or a new batch scenario based on a current load ofthe tow truck. For example, the optimization engine 214 may determinewhether the current load of the tow truck is greater than zero. If thecurrent load of the tow truck is greater than zero, this may indicatethat the work assignment request corresponds to a refill batch scenario.On the other hand, if the current load of the tow truck is zero, thismay indicate that the work assignment request corresponds to a refillbatch scenario.

If the optimization engine 214 determines at block 604 that the workassignment request corresponds to a refill batch scenario, then theprocedure 600 proceeds to blocks 606-610. At block 606 the optimizationengine 214 removes, from the refined pool of tow request stocks, towrequest stocks that are outside a certain mileage boundary from acurrent location of the tow truck. At block 608, the optimization engine214 selects, from the tow request stocks remaining in the refined poolof tow request stocks, optimally grouped tow request stocks to fill thebatch limit calculated at block 602. In an embodiment, the optimizationengine 214 selects the tow request stocks based on one or more of i) thecurrent location of the tow truck, ii) availability of space and dailyacceptance at one or more tow yards that may be destinations of thevehicles in the tow request stocks, and iii) due times for fulfillmentof the tow request stocks. At block 610, the optimization engine 214generates the optimized pool of tow request stocks to include the towrequest stocks selected at block 608.

Referring again to block 604, if the optimization engine 214 determinesat block 604 that the work assignment request corresponds to a refillscenario, then the procedure 600 proceeds to blocks 616-620. At block606 the optimization engine 214 removes, from the refined pool of towrequest stocks, tow request stocks that are outside a certain mileageboundary from a current location of the tow truck. At block 618, theoptimization engine 214 selects, from the tow request stocks remainingin the refined pool of tow request stocks, optimally grouped tow requeststocks to fill the batch limit calculated at block 602. In anembodiment, the optimization engine 214 selects the tow request stocksbased on one or more of i) the current location of the tow truck, ii)availability of space and daily acceptance at one or more tow yards thatmay be destinations of the vehicles in the tow request stocks, and iii)due times for fulfillment of the tow request stocks, iv) priorities ofinsurance providers that provided the tow request stocks, v) progresstowards meeting daily SLA requirements for the insurance providers thatprovided the tow request stocks, etc. At block 620, the optimizationengine 214 generates the optimized pool of tow request stocks to includethe tow request stocks selected at block 618.

FIG. 7 is a flow chart of a method for dispatching work assignments totow service providers, according to an embodiment. In an embodiment, themethod 700 is implemented by the auto dispatch system 112 of FIG. 1. Inanother embodiment, the method 700 is implemented by a suitable dispatchsystem different from the auto dispatch system 112 of FIG. 1.

At block 702, a work assignment request message is received at anenterprise server from a user device. For example, the work assignmentrequest message is received at the enterprise server 102 from a userdevice 104. The work assignment request message may be generated by theuser device 104 based on input provided by a tow service provider viathe user device 104. For example, the work assignment request messagemay be generated by the auto dispatch application 122 of the user device104, based on input provided by the tow service provider via a userinterface of the auto dispatch application 122.

At block 704, an initial pool of tow request stocks for potentialfulfillment by the tow service provider is selected from a set ofpending tow request stocks. In an embodiment, the auto dispatch system112 of the enterprise server 102 selects the initial pool of tow requeststocks from the enterprise inventory data based 110 b. The initial poolof tow request stocks may be selected based on a geographical servicearea of the tow service provider, for example as indicated in a towprovider profile of the tow service provider, or may be selectedaccording to other suitable selection criteria.

At block 706, a refined pool of tow request stocks is generated based onthe initial pool of tow request stocks. For example, the auto dispatchsystem 112 generates the refined pool of tow request stocks to exclude,from the initial pool of tow request stocks, tow request stocks forwhich the tow service provider does not meet at least one fulfillmentrequirement. In an embodiment, the auto dispatch system 112 generatesthe refined pool of tow request stocks to exclude one or more of i) towrequest stocks with pickup locations outside a distance boundary from acurrent location of the requesting tow service provider, ii) tow requeststocks with pickups that require a license that is not held by therequesting tow service provider, iii) tow request stocks associated withspecific insurance providers, for example if the tow service provider isnot set up to work with the specific insurance providers, iv) towrequest stocks that require payment methods not handled by therequesting tow service provider, v) tow request stocks that requirepickup capabilities (e.g., whether the tow service provider can handlecertain types of vehicles, such as heavy duty vehicles, whether theyprovide a desired number of axles, vehicle weight, flat bed, winch) notoffered by the requesting tow service provider, etc. In an embodiment,the auto dispatch system 112 implements the process 500 of FIGS. 5A-B togenerate the refined pool of tow request stocks. In another embodiment,the auto dispatch system 112 implements another suitable process togenerate the refined pool of tow request stocks.

At block 708, an optimized pool of tow request stocks is generated basedon the refined pool of tow request stocks. For example, the autodispatch system 112 generates the optimized pool of tow request stocksto include one or more tow request stocks selected, according to one ormore optimization criteria, from the refined pool of tow request stocks.The auto dispatch system 112 may select the one or more tow requeststocks to be included in the optimized pool of tow request stocks,based, for example, on one or more of i) a current load of a tow truckof the requesting service provider, ii) destinations of vehiclescurrently on the tow truck of the requesting tow service provider, iii)current capacity of tow yards that may be potential destinations of thevehicles, iv) due times for pickups of the vehicles, etc., in variousembodiments. In an embodiment, the auto dispatch system 112 implementsthe process 600 of FIG. 6 to generate the optimized pool of tow requeststocks. In another embodiment, the auto dispatch system 112 implementsanother suitable process to generate the optimized pool of tow requeststocks.

At block 710, one or more work assignment response messages aregenerated to include information assigning tow request stocks in theoptimized pool to the tow service provider. For example, the autodispatch system 112 may generate the one or more work assignmentresponse messages to include information assigning tow request stocks inthe optimized pool to the tow service provider. At block 712 the one ormore work assignment response messages are transmitted from theenterprise server device to the user device to provide the informationassigning the tow request stocks in the optimized pool of tow requeststocks to the user device.

Where applicable, various embodiments provided by the present disclosuremay be implemented using hardware, software, or combinations of hardwareand software. Also, where applicable, the various hardware componentsand/or software components set forth herein may be combined intocomposite components comprising software, hardware, and/or both withoutdeparting from the spirit of the present disclosure. Where applicable,the various hardware components and/or software components set forthherein may be separated into sub-components comprising software,hardware, or both without departing from the scope of the presentdisclosure. In addition, where applicable, it is contemplated thatsoftware components may be implemented as hardware components andvice-versa.

Software, in accordance with the present disclosure, such as programcode and/or data, may be stored on one or more computer readablemediums. It is also contemplated that software identified herein may beimplemented using one or more general purpose or specific purposecomputers and/or computer systems, networked and/or otherwise. Whereapplicable, the ordering of various steps described herein may bechanged, combined into composite steps, and/or separated into sub-stepsto provide features described herein.

While various operations have been described herein in terms of“modules” or “components,” it is noted that that terms are not limitedto single units or functions. Moreover, functionality attributed to someof the modules or components described herein may be combined andattributed to fewer modules or components. Further still, while thepresent invention has been described with reference to specificexamples, those examples are intended to be illustrative only, and arenot intended to limit the invention. It will be apparent to those ofordinary skill in the art that changes, additions or deletions may bemade to the disclosed embodiments without departing from the spirit andscope of the invention. For example, one or more portions of methodsdescribed above may be performed in a different order (or concurrently)and still achieve desirable results.

What is claimed is:
 1. A method for dispatching work assignments to towservice providers, the method comprising: receiving, at a processor ofan enterprise server device, a work assignment request message from auser device, the work assignment request message having been generatedby the user device based on input provided by a tow service provider viathe user device; selecting, with the processor from a set of pending towrequest stocks, an initial pool of tow request stocks for potentialfulfillment by the tow service provider; generating, with the processorbased on the initial pool of tow request stocks, a refined pool of towrequest stocks, the refined pool of tow request stocks being generatedto exclude, from the initial pool of tow request stocks, tow requeststocks for which the tow service provider does not meet at least onefulfillment requirement; generating, with the processor based on therefined pool of tow request stocks, an optimized pool of tow requeststocks to include one or more tow request stocks selected, according toone or more optimization criteria, from the refined pool of tow requeststocks; generating, with the processor, one or more work assignmentresponse messages to include information assigning tow request stocks inthe optimized pool to the tow service provider; and causing, with theprocessor, the one or more work assignment response messages to betransmitted from the enterprise server device to the user device toprovide the information assigning tow request stocks in the optimizedpool of tow request stocks to the user device.
 2. The method of claim 1,wherein the method further comprises determining, with the processorbased on a tow service provider profile maintained by the enterpriseserver device, one or more of i) that the tow service provider does nothave a particular towing license, ii) that the tow service provider doesnot handle a particular payment method, and iii) that the tow serviceprovider does not handle a certain type of pickup, and generating therefined pool of tow request stocks comprises generating the refined poolof tow request stocks to exclude, from the selected pool of tow requeststocks, one or more of i) tow request stocks that require the particularlicense, ii) tow request stocks that require the particular paymentmethod, and iii) tow request stocks that require the certain type ofpickup.
 3. The method of claim 1, wherein generating the optimized poolof tow request stocks comprises generating the optimized pool of towrequest stocks based on one or more of i) a current load of a tow truckof the tow service provider, ii) a maximum load of the tow truck of thetow service provider, iii) a current location of the tow serviceprovider, iv) destinations of vehicles in the current load of the towtruck of the tow service provider, and v) destinations of vehicles inthe refined pool of tow request stocks.
 4. The method of claim 1,wherein generating the optimized pool of tow request stocks comprisesgenerating the optimized pool of tow request stocks based on respectivecapacities of one or more yards that are one or both of i) thedestinations of the vehicles in the current load of the tow truck of thetow service provider and ii) the destinations of vehicles in the refinedpool of tow request stocks.
 5. The method of claim 1, wherein generatingthe optimized pool of tow request stocks comprises generating theoptimized pool of tow request stocks based on one or more of i) duetimes for fulfillment of tow requests in the refined pool of towrequests, ii) priorities of respective insurance providers that providedtow requests in the refined pool of tow requests, and iii) service levelagreements with the insurance providers.
 6. The method of claim 1,wherein the refined pool of tow request stocks includes respective towrequest stocks associated with respective insurance providers, andgenerating the optimized pool of tow request stocks comprises generatingthe optimized pool of tow request stocks further based on one or both ofi) priorities associated with the insurance providers and ii) progresstowards daily goals specified in service level agreements with therespective insurance providers.
 7. The method of claim 1, whereinselecting the initial pool of tow request stocks for potentialfulfillment by the tow service provider includes selecting the initialpool of tow request stocks based on whether the tow service provider isworking on a catastrophe pickup assignment or a regular pickupassignment.
 8. The method of claim 1, wherein the method furthercomprises generating, with the processor, documentation needed forfulfillment of the tow request stocks in the optimized pool assigned tothe tow service provider, and generating the one or more work assignmentresponse messages comprises generating the one or more work assignmentresponse messages to further include the documentation.
 9. A tangible,non-transitory computer readable medium, or media, storing machinereadable instructions that, when executed by one or more processors,cause the one or more processors to: receive a work assignment requestmessage from a user device, the work assignment request message havingbeen generated by the user device based on input provided by a towservice provider via the user device; select, from a set of pending towrequest stocks, an initial pool of tow request stocks for potentialfulfillment by the tow service provider; generate, based on the initialpool of tow request stocks, a refined pool of tow request stocks, therefined pool of tow request stocks being generated to exclude, from theinitial pool of tow request stocks, tow request stocks for which the towservice provider does not meet at least one fulfillment requirement;generate, based on the refined pool of tow request stocks, an optimizedpool of tow request stocks to include one or more tow request stocksselected, according to one or more optimization criteria, from therefined pool of tow request stocks; generate one or more work assignmentresponse messages to include information assigning tow request stocks inthe optimized pool to the tow service provider; and cause the one ormore work assignment response messages to be transmitted from theenterprise server device to the user device to provide the informationassigning the tow request stocks in the optimized pool of tow requeststocks to the user device.
 10. The non-transitory computer-readablemedium or media of claim 9, wherein the machine readable instructions,when executed by the one or more processors, cause the one or moreprocessors to determine, based on a tow service provider profilemaintained by the enterprise server, one or more of i) that the towservice provider does not have a particular towing license, ii) that thetow service provider does not handle a particular payment method, andiii) that the tow service provider does not handle a certain type ofpickup, and generate the refined pool of tow request stocks to exclude,from the selected pool of tow request stocks, one or more of i) towrequest stocks that require the particular license, ii) tow requeststocks that require the particular payment method, and iii) tow requeststocks that require the certain type of pickup.
 11. The non-transitorycomputer-readable medium or media of claim 9, wherein the machinereadable instructions, when executed by the one or more processors,cause the one or more processors to generate the optimized pool of towrequest stocks based on one or more of i) a current load of a tow truckof the tow service provider, ii) a maximum load of the tow truck of thetow service provider, iii) a current location of the tow serviceprovider, iv) destinations of vehicles in the current load of the towtruck of the tow service provider, and v) destinations of vehicles inthe refined pool of tow request stocks.
 12. The non-transitorycomputer-readable medium or media of claim 9, wherein the machinereadable instructions, when executed by the one or more processors,cause the one or more processors to generate the optimized pool of towrequest stocks based on respective capacities of one or more yards thatare one or both of i) the destinations of the vehicles in the currentload of the tow truck of the tow service provider and ii) thedestinations of vehicles in the refined pool of tow request stocks. 13.The non-transitory computer-readable medium or media of claim 9, whereinthe machine readable instructions, when executed by the one or moreprocessors, cause the one or more processors to generate the optimizedpool of tow request stocks based on one or more of i) due times forfulfillment of tow requests in the refined pool of tow requests, ii)priorities of respective insurance providers that provided tow requestsin the refined pool of tow requests, and iii) service level agreementswith the insurance providers.
 14. The non-transitory computer-readablemedium or media of claim 9, wherein the refined pool of tow requeststocks includes respective tow request stocks associated with respectiveinsurance providers, and the machine readable instructions, whenexecuted by the one or more processors, cause the one or more processorsto generate the optimized pool of tow request stocks further based onone or both of i) priorities associated with the insurance providers andii) progress towards daily goals specified in service level agreementswith the respective insurance providers.
 15. The non-transitorycomputer-readable medium or media of claim 9, wherein the machinereadable instructions, when executed by the one or more processors,cause the one or more processors to select the initial pool of towrequest stocks based on whether the tow service provider is working on acatastrophe assignment or a regular assignment.
 16. The non-transitorycomputer-readable medium or media of claim 9, wherein the machinereadable instructions, when executed by the one or more processors,cause the one or more processors to generate documentation needed forfulfillment of the tow request stocks in the optimized pool assigned tothe tow service provider, and generate the one or more work assignmentresponse messages to further include the documentation.
 17. A system forautomatic dispatch of work assignments to tow service providers, thesystem comprising: an auto dispatch application implemented on one ormore processors of a user device, the auto dispatch applicationconfigured to provide a user interface for entering a work assignmentrequest by a user of the user device, the user being a tow serviceprovider, in response to input provided via the user interface by theuser of the user device, generate a work assignment request messagerequesting work assignment for fulfillment by the tow service provider,and cause the user device to transmit the work assignment requestmessage, via a network, to an enterprise server device; and an autodispatch system implemented on one or more processors of the enterpriseserver device, the auto dispatch system configured to receive the workassignment request message transmitted by the user device, select, froma set of pending tow request stocks, an initial pool of tow requeststocks for potential fulfillment by the tow service provider, generate,based on the initial pool of tow request stocks, a refined pool of towrequest stocks, the refined pool of tow request stocks being generatedto exclude, from the initial pool of tow request stocks, tow requeststocks for which the tow service provider does not meet at least onefulfillment requirement, generate, based on the refined pool of towrequest stocks, an optimized pool of tow request stocks to include oneor more tow request stocks selected, according to one or moreoptimization criteria, from the refined pool of tow request stocks,generate one or more work assignment response messages to includeinformation assigning tow request stocks in the optimized pool to thetow service provider, and cause the one or more work assignment responsemessages to be transmitted from the enterprise server device to the userdevice to provide the information assigning the tow request stocks inthe optimized pool of tow request stocks to the user device.
 18. Thesystem of claim 17, wherein the auto dispatch system is furtherconfigured to: determine, based on a tow service provider profilemaintained by the enterprise server, one or more of i) that the towservice provider does not have a particular towing license, ii) that thetow service provider does not handle a particular payment method, andiii) that the tow service provider does not handle a certain type ofpickup, and generate the refined pool of tow request stocks to exclude,from the selected pool of tow request stocks, one or more of i) towrequest stocks that require the particular license, ii) tow requeststocks that require the particular payment method, and iii) tow requeststocks that require the certain type of pickup.
 19. The system of claim17, wherein the auto dispatch system is configured to generate theoptimized pool of tow request stocks based on one or more of i) acurrent load of a tow truck of the tow service provider, ii) a maximumload of the tow truck of the tow service provider, iii) a currentlocation of the tow service provider, iv) destinations of vehicles inthe current load of the tow truck of the tow service provider, and v)destinations of vehicles in the refined pool of tow request stocks.